package com.example.springboot.prop;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * springboot会默认读取application.yml配置文件,
 * <p> 本文指定了前缀
 * <p>
 * <p> 1. 字面值：字符串，布尔类型，数值，日期。字符串默认不加引号，单引号会转义特殊字符。
 * 日期格式支持 yyyy/MM/dd HH:mm:ss
 * <p> 2. 对象：由键值对组成，形如 key:(空格)value 的数据组成。
 * 冒号后面的空格是必须要有的，每组键值对占用一行，且缩进的程度要一致，
 * 也可以使用行内写法： {k1: v1, ....kn: vn}
 * <p> 3. 数组：由形如 -(空格)value 的数据组成。短横线后面的空格是必须要有的，每组数据占用一行，且缩进的程度要一致，
 * 也可以使用行内写法： [1,2,...n]
 * <p> 4. 复合结构：上面三种数据结构任意组合
 * <p>
 * @author Zhang.Z
 * @version 2025-09-19
 */
@Component
@ConfigurationProperties(prefix = "userinfo1")
public class DefaultYaml {

    private String username;
    private Integer age;
    private Boolean active;
    private Map<String, Object> map;
    private Date createdDate;
    private List<String> hobbies;


    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Boolean getActive() {
        return active;
    }

    public void setActive(Boolean active) {
        this.active = active;
    }

    public Map<String, Object> getMap() {
        return map;
    }

    public void setMap(Map<String, Object> map) {
        this.map = map;
    }

    public Date getCreatedDate() {
        return createdDate;
    }

    public void setCreatedDate(Date createdDate) {
        this.createdDate = createdDate;
    }

    public List<String> getHobbies() {
        return hobbies;
    }

    public void setHobbies(List<String> hobbies) {
        this.hobbies = hobbies;
    }

}
